package com.oceansoft.mobile.econsole.modules.member.service;

import com.oceansoft.mobile.econsole.modules.api.entity.Monitor;
import com.oceansoft.mobile.econsole.modules.base.entity.Pager;
import com.oceansoft.mobile.econsole.modules.base.entity.Query;
import com.oceansoft.mobile.econsole.modules.base.entity.Result;
import com.oceansoft.mobile.econsole.modules.member.entity.Line;
import com.oceansoft.mobile.econsole.modules.member.entity.Member;
import com.oceansoft.mobile.econsole.modules.member.entity.WtMember;

import java.io.IOException;

/**
 * Description
 *
 * @author: chenw
 * @time: 2014-6-16 0016 下午 15:42
 */
public interface IMemberService {

    /**
     * 系统认证
     *
     * @param user 认证用户信息
     * @return Response
     */
    Result authentication(Member user) throws IOException;

    /**
     * 用户注册
     *
     * @param member 客户端注册用户信息
     * @return Result
     */
    Result register(Member member);

    Result updateWtMember(Member member);

    String isConfirm(String userGuid);

    String rz(String userGuid);

    /**
     * 通过code返回违法详细信息
     *
     * @param code
     * @return
     */
    String findCode(String code);

    /**
     * 用户重置密码
     *
     * @param id           身份证号
     * @param telNum       手机号码
     * @param pwd          新密码
     * @param validateCode 检验码
     * @return Result
     */
    Result resetPassword(String id, String telNum, String pwd, String validateCode, String originPwd);


    /**
     * 重新绑定用户手机号码
     *
     * @param bizType 短信接口业务类型
     * @param id      用户身份证号
     * @param oldTel  原手机号码
     * @param newTel  新手机号
     * @param newCode
     * @return
     */
    Result rebindUserMobile(int bizType, String id, String oldTel, String newTel, String newCode);

    /**
     * 网厅同步用户
     */
    Result webSych(String pwd, Member member);

    /**
     * 身份证与姓名是否匹配接口
     */
    Result isIdins(String idCard, String name);

    /**
     * @param lineId 线路ID
     * @return Result
     */
    Result loadPathInfo(String lineId);

    /**
     * 加载用户自定义线路
     *
     * @param userId 用户ID
     * @return Result
     */
    Result loadCustomLines(int userId);

    /**
     * 删除用户自定义线路信息
     *
     * @param lindId 线路ID
     * @return Result
     */
    Result removeLine(String lindId);

    /**
     * 保存线路信息
     *
     * @param line 线路信息
     * @return Result
     */
    Result saveLine(Line line);

    /**
     * 增加自定义线路监控点
     *
     * @param monitor 单个监控点信息
     * @return Result
     */
    Result saveMonitor(Monitor monitor);

    /**
     * 删除监控点信息
     *
     * @param pk 关系表PK
     * @return Result
     */
    Result delMonitor(int pk);

    /**
     * 用户登录认证
     *
     * @param user 登录用户信息
     * @return
     */
    Result userLoginAuthentication(Member user) throws Exception;

    Result openIdLogin(Member member) throws IOException;

    /**
     * 用户信息列表
     *
     * @param query
     * @return
     */
    Pager<Member> findByPage(Query query);

    /**
     * 实名认证
     *
     * @param member
     * @return
     */
    String rz(WtMember member);

    /**
     * 获取实名认证信息
     *
     * @param guid
     * @return
     */
    String rzxx(WtMember member)throws IOException;

}
